From 7fefd211b87017f0860117c2fc70a36b90708311 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sat, 21 Jun 2014 10:16:14 -0400 Subject: [PATCH] gdkwindow: Clean up code Introduce a temporary to make the code a bit more clear under these cases. --- gdk/gdkwindow.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 1a3966b70e..dd217136e6 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2818,6 +2818,7 @@ gdk_window_end_paint (GdkWindow *window) if (window->current_paint.surface_needs_composite) { cairo_surface_t *surface; + gboolean skip_alpha_blending; cairo_region_get_extents (window->current_paint.region, &clip_box); full_clip = cairo_region_copy (window->clip_region); @@ -2831,8 +2832,12 @@ gdk_window_end_paint (GdkWindow *window) gdk_cairo_region (cr, full_clip); cairo_clip (cr); - if (gdk_window_has_impl (window) || - window->alpha == 255) + /* We can skip alpha blending for a fast composite case + * if we have an impl window or we're a fully opaque window. */ + skip_alpha_blending = (gdk_window_has_impl (window) || + window->alpha == 255); + + if (skip_alpha_blending) { cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_paint (cr); -- 2.30.2